查看原文
其他

从NCBI下载测序数据 | 也许是目前最详细的版本

2017-09-01 生物女博士 生信媛

目录

一、使用NCBI的工具进行下载

1. 下载和安装Entrez Direct以及SRA toolkit
  • 1.1 下载和安装Entrez Direct

  • 1.2 下载和安装SRA toolkit

2.使用NCBI的工具进行数据下载
  • 2.1 命令的含义

  • 2.2 使用NCBI的工具下载数据

  • 2.3 批量获取想要下载的sra数据的编号

二、使用其他工具进行数据下载

1. wget -i进行批量下载
2. 使用FileZilla软件进行下载


一、使用NCBI的工具进行下载


1. 下载和安装Entrez Direct以及SRA toolkit


1.1 下载和安装Entrez Direct

cd ~/src # 打开你安装软件的目录 curl ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/edirect.zip -o edirect.zip #下载工具包 unzip edirect.zip # 解压这个工具包。 cd edirect # 进入文件夹 ./setup.sh # 开始安装

稍等一会后,会出现很多提示,其中有:Entrez Direct has been successfully downloaded and installed,以及类似这样的一行:

echo "export PATH=\$PATH:\$HOME/src/edirect" >> $HOME/.bashrc

你可以直接复制这句话,然后粘贴到命令提示符后,回车运行。(如果是mac,把上句末尾的.bashrc改成.profile)


esearch -help 

跳出对应的帮助文档,安装成功。


1.2 下载和安装SRA toolkit


同样,首先打开你安装软件的目录

cd ~/src


下载 SRA toolkit (确保你的下载链接对应的软件版本是跟你的系统一致的。)

建议安装最新版本:


  • Mac上:


# 下载
curl -O https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.8.2/sratoolkit.2.8.2-mac64.tar.gz
# 解压。

tar xzvf sratoolkit.2.8.2-mac64.tar.gz # 设置环境变量 echo export PATH=$PATH:~/src/edirect:~/src/sratoolkit.2.8.2-mac64/bin >> ~/.profile   # 使上一步设置生效 source ~/.profile

  • Linux上:


curl -O https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.8.2/sratoolkit.2.8.2-ubuntu64.tar.gz tar xzvf sratoolkit.2.8.2-ubuntu64.tar.gz echo export PATH=$PATH:~/src/edirect:~/src/sratoolkit.2.8.2-ubuntu64/bin >> ~/.bashrc source ~/.bashrc

来看一下是否安装成功:

fastq-dump -h


已经成功出来了使用帮助文档,安装成功。


2.使用NCBI的工具进行数据下载

2.1 命令的含义


以  esearch -db nucleotide -query PRJNA257197 这条命令为例

返回的结果如下:

1:数据库类型为nucleotide,我们esearch的时候就指明了,我们要在nucleotide这个数据库=里搜索

2:搜索关键词数量:1(因为我们只输入了一个关键词,就是PRJNA257197)

3:搜索得到的条目有249个。


这一步相当于你到NCBI的首页,做了下图的操作:

首先选择了nucleotide数据库,搜索关键词为PRJNA257197



并点了Search

得到 249 条检索结果。跟命令行运行结果是一样的




前面只是做了搜索,但是要把数据弄下来,我们需要进一步用别的方式获取并存储下来。这里是用 efetch 把这249个搜索结果的fasta(也就是碱基序列)给存到了ebola.fasta里面。-format 是指定格式,这里指定为fasta


esearch -db nucleotide -query PRJNA257197 | efetch -format fasta > ebola.fasta



2.2 使用NCBI的工具下载数据


如果你已经知道自己要下某个特定的数据,那么你可以使用SRA Toolkit的prefetch直接进行下载:

prefetch SRR1553610


下载后,需要把文件解压为fastq格式

fastq-dump --split-files SRR1553610


假如你有一些需要下载的sra的id号放在一个叫sraids.txt的文件中


可以使用prefetch 进行批量下载,用fastq-dump批量转成fastq文件

prefetch --option-file sraids.txt cat sraids.txt | sed 's/SRR/fastq-dump --split-files SRR/' | bash

又或者使用SRA Toolkit的工具fastq-dump,批量下载&转格式一步到位:

cat sraids.txt | awk ' { print "fastq-dump --split-files -O sra " $1 } ' > get-data.sh bash get-data.sh

来看看get-data.sh里的内容:


使用SRA Toolkit的工具fastq-dump下载单个文件的话,比如SRR000001:


fastq-dump --split-files SRR000001



2.3 批量获取想要下载的sra数据的编号


以 PRJNA257197 为例


  • 方法1:命令行,

    esearch -db sra -query PRJNA257197  | efetch -format runinfo > runinfo.csv cat runinfo.csv | cut -f 1 -d ',' | grep SRR  > sraids.txt
  • 方法2:直接登录NCBI网站


首先进入https://www.ncbi.nlm.nih.gov/sra/

输入你要找的这个编号:PRJNA257197

点击search,会看到很多检索结果。点击右上角的 send to


选定File,并把Format改为RunInfo,点击Create File就生成了一个SraRunInfo.csv文件了。

得到的数据如下:

有没有发现,你其实只是把这种网页版的操作变成了几乎一一对应的命令行操作而已。


RunInfo包含的信息比较丰富,但如果你只需要ID号,你也可以直接选Accession List:

得到的数据如下:


又或者,你想找ABA(一种重要的植物激素)相关的一些数据

嗯,我想只看拟南芥的:点击右侧的拟南芥Arabidopsis thaliana

找到有兴趣的数据:


随便点一个All runs


显示一个项目中的所有相关数据,同样,你可以选择下载更为详细的RunInfo或者单纯的sra编号(Accession List)



然而不知道为什么,NCBI的命令行工具经常会出现无法访问服务器的情况。所以我们可能会需要其他工具进行数据的下载。


二、使用其他工具进行数据下载

1. wget -i进行批量下载

通过命令行或者网页下载得到了格式如下的编号后。我们可以用wget -i进行批量下载。

这里,我们注意这两列数据:Run的编号和SRAStudy的编号:

目测,一个项目里的Run都在一个SRAstudy编号。

我们可以根据网址的规律,构建批量下载的地址。


下边是SRR1972877的下载地址:

ftp://ftp.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByStudy/sra/SRP/SRP045/SRP045416/SRR1972877/SRR1972877.sra


前面一段,是sra数据的所在网址,是不变的。

ftp://ftp.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByStudy/sra


网址余下的部分:

ftp://ftp.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByStudy/sra/SRP/SRAStudy编号的SRP+前3位数字/完整的SRAStudy编号/Run号/Run号.sra


对于我们要下载的这个project来说,我们可以这么批量构建下载网址:

首先,获取存有想要下载的SRR文件的编号的文件,这里我的文件名为sraids.txt,内容如下:

然后根据编号生成网址:


cat sraids.txt | awk ' { print "ftp://ftp.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByStudy/sra/SRP/SRP045/SRP045416/" $1 "/" $1 ".sra" } ' > wget_list


最后,用wget -i批量下载

wget -i wget_list




2. 使用FileZilla软件进行下载

另外,也可以使用FileZilla软件进行下载。

在主机一栏填入:ftp-private.ncbi.nlm.nih.gov

登录类型为匿名

登录成功后,输入路径,选择想要下载的,直接下载即可。



参考资料1:http://www.personal.psu.edu/iua1/courses/code-repository-2014.htmllecture3和lecture4,本公众号有翻译解说版)

参考资料2:https://www.ncbi.nlm.nih.gov/books/NBK47528/pdf/Bookshelf_NBK47528.pdf





欢迎关注我们

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存